
class Solution {
public:
    int ret=0;
    int tmp=0;
    int subsetXORSum(vector<int>& nums) {
        dfs(nums,0);
        return ret;
    }

    void dfs(vector<int>&nums,int pos)
    {
        ret+=tmp;
        for(int i=pos;i<nums.size();i++)
        {
            tmp^=nums[i];
            dfs(nums,i+1);
            //回溯
            tmp^=nums[i];
        }
    }
};